// 告警消息类型
export interface AlertMessage {
  title: string;  // 告警标题
  body: string;   // 告警内容
  level?: AlertLevel;  // 告警级别
  source?: string;  // 告警来源
  timestamp?: Date;  // 告警时间
  metadata?: Record<string, any>;  // 附加信息
}

// 告警级别
export enum AlertLevel {
  INFO = 'INFO',
  WARNING = 'WARNING',
  ERROR = 'ERROR',
  CRITICAL = 'CRITICAL'
}

// 告警目标类型
export enum AlertTarget {
  EMAIL = 'email',
  WEBHOOK = 'webhook',
  SMS = 'sms'
}

// 告警配置
export interface AlertConfig {
  targets: AlertTarget[];  // 告警目标
  throttleKey?: string;  // 限流键
  throttleInterval?: number;  // 限流间隔(ms)
  retryCount?: number;  // 重试次数
  retryDelay?: number;  // 重试延迟(ms)
}

// 告警结果
export interface AlertResult {
  success: boolean;
  target: AlertTarget;
  error?: Error;
  timestamp: Date;
}

// 告警限流配置
export interface ThrottleConfig {
  enabled: boolean;
  interval: number;  // 时间间隔(ms)
  maxAttempts: number;  // 最大尝试次数
}
